package com.spice.service.entity.pojo;

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.baomidou.mybatisplus.annotation.TableName;
import com.spice.common.constant.PermissionConstant;
import com.spice.common.model.BaseEntity;
import com.spice.common.util.DateUtil;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.poi.ss.formula.functions.T;
import org.apache.poi.ss.usermodel.Sheet;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName(PermissionConstant.PACK_MAINTAIN)
@ApiModel(description = "产品包装维护信息表")
public class PackMaintain extends BaseEntity {
    @ApiModelProperty(value = "系列名称", example = "火锅周边")
    @ExcelProperty(value = {"档案维护", "系列名称"})
    private String serialName;

    @ApiModelProperty(value = "产品名称", example = "火锅油碟食用植物调和油")
    @ExcelProperty(value = {"档案维护", "产品名称"})
    private String productName;

    @ApiModelProperty(value = "更新时间", example = "2021-11-23")
    @ExcelProperty(value = {"档案维护", "更新时间"})
    private String updateTimeOfProduct;

    @ApiModelProperty(value = "更新原因、内容", example = "信息维护")
    @ExcelProperty(value = {"档案维护", "更新原因、内容"})
    private String updateReason;

    @ApiModelProperty(value = "维护人", example = "张文宝")
    @ExcelProperty(value = {"档案维护", "维护人"})
    private String maintainer;

    @ApiModelProperty(value = "外包装 净含量", example = "60ml")
    @ExcelProperty(value = {"外包装", "产品信息", "净含量"})
    private String outerNetWeight;

    @ApiModelProperty(value = "外包装 材质", example = "铜版纸（覆亮膜）")
    @ExcelProperty(value = {"外包装", "产品信息", "材质1"})
    private String outerMaterial;

    @ApiModelProperty(value = "外包装 厚度（S）", example = "62g")
    @ExcelProperty(value = {"外包装", "产品信息", "厚度1(S)"})
    private String outerThickness;

    @ApiModelProperty(value = "外包装 膜宽（mm)", example = "350")
    @ExcelProperty(value = {"外包装", "产品信息", "膜宽1(mm)"})
    private String outerFilmWidth;

    @ApiModelProperty(value = "外包装 成品尺寸（mm)", example = "158*41")
    @ExcelProperty(value = {"外包装", "产品信息", "成品尺寸1(mm)"})
    private String outerProductSize;

    @ApiModelProperty(value = "外包装 袋型", example = "成型袋")
    @ExcelProperty(value = {"外包装", "产品信息", "袋型1"})
    private String outerBagType;

    @ApiModelProperty(value = "外包装 印刷工艺", example = "彩色印刷")
    @ExcelProperty(value = {"外包装", "印刷信息", "印刷工艺1"})
    private String outerPrintArt;

    @ApiModelProperty(value = "外包装 压封工艺（mm)", example = "边封：10mm上压封：40mm")
    @ExcelProperty(value = {"外包装", "印刷信息", "压封工艺1（mm)"})
    private String outerSealArt;

    @ApiModelProperty(value = "外包装 开口方向", example = "")
    @ExcelProperty(value = {"外包装", "印刷信息", "开口方向1"})
    private String outerOpenDirection;

    @ApiModelProperty(value = "外包装 挂孔直径（mm）", example = "10(距上边沿12mm)")
    @ExcelProperty(value = {"外包装", "印刷信息", "挂孔直径（mm）"})
    private String hangingDiameter;

    @ApiModelProperty(value = "外包装 挂孔位置", example = "")
    @ExcelProperty(value = {"外包装", "印刷信息", "挂孔位置"})
    private String hangingLocation;

    @ApiModelProperty(value = "外包装 透气孔直径（mm）", example = "")
    @ExcelProperty(value = {"外包装", "印刷信息", "透气孔直径（mm）"})
    private String airHoleDiameter;

    @ApiModelProperty(value = "外包装 打码位置", example = "")
    @ExcelProperty(value = {"外包装", "印刷信息", "打码位置"})
    private String codeLocation;

    @ApiModelProperty(value = "外包装 执行标准", example = "")
    @ExcelProperty(value = {"外包装", "印刷信息", "执行标准1"})
    private String outerExecuteStandard;

    @ApiModelProperty(value = "外包装 产品条码", example = "6926718454741")
    @ExcelProperty(value = {"外包装", "条码信息", "产品条码"})
    private String productNumber;

    @ApiModelProperty(value = "外包装 定版时间", example = "2021-04-07")
    @ExcelProperty(value = {"外包装", "制作信息", "定版时间1"})
    private String outerConfirmTime;

    @ApiModelProperty(value = "外包装 制作公司", example = "重庆老麻仙")
    @ExcelProperty(value = {"外包装", "制作信息", "制作公司1"})
    private String outerProductionCompany;

    @ApiModelProperty(value = "外包装 文件名称", example = "")
    @ExcelProperty(value = {"外包装", "辅料标准", "文件名称"})
    private String fileName;

    @ApiModelProperty(value = "外包装 编号", example = "")
    @ExcelProperty(value = {"外包装", "辅料标准", "编号"})
    private String excipientsId;

    @ApiModelProperty(value = "外包装 上机适配性评估", example = "")
    @ExcelProperty(value = {"外包装", "验证信息", "上机适配性评估"})
    private String suitabilityAssessment;

    @ApiModelProperty(value = "内包装名称", example = "")
    @ExcelProperty(value = {"内包装", "产品信息", "内包装名称"})
    private String innerPackageName;

    @ApiModelProperty(value = "内包装 分包数量/净含量", example = "1*10g")
    @ExcelProperty(value = {"内包装", "产品信息", "分包数量/净含量"})
    private String packageNumAndNetWeight;

    @ApiModelProperty(value = "内包装 材质", example = "PET/PET渡/PE")
    @ExcelProperty(value = {"内包装", "产品信息", "材质2"})
    private String innerMaterial;

    @ApiModelProperty(value = "内包装 厚度（S）", example = "8.5s")
    @ExcelProperty(value = {"内包装", "产品信息", "厚度2（S）"})
    private String innerThickness;

    @ApiModelProperty(value = "内包装 膜宽（mm)", example = "140mm")
    @ExcelProperty(value = {"内包装", "产品信息", "膜宽2（mm)"})
    private String innerFilmWidth;

    @ApiModelProperty(value = "内包装 成品尺寸（mm)", example = "95*70")
    @ExcelProperty(value = {"内包装", "产品信息", "成品尺寸2（mm)"})
    private String innerProductSize;

    @ApiModelProperty(value = "内包装 袋型", example = "卷膜")
    @ExcelProperty(value = {"内包装", "产品信息", "袋型2"})
    private String innerBagType;

    @ApiModelProperty(value = "内包装 印刷工艺", example = "彩色印刷")
    @ExcelProperty(value = {"内包装", "印刷信息", "印刷工艺2"})
    private String innerPrintArt;

    @ApiModelProperty(value = "内包装 压封工艺（mm)", example = "背封：10mm上压封：10mm")
    @ExcelProperty(value = {"内包装", "印刷信息", "压封工艺2（mm)"})
    private String innerSealArt;

    @ApiModelProperty(value = "内包装 开口方向", example = "")
    @ExcelProperty(value = {"内包装", "印刷信息", "开口方向2"})
    private String innerOpenDirection;

    @ApiModelProperty(value = "内包装 执行标准", example = "")
    @ExcelProperty(value = {"内包装", "印刷信息", "执行标准2"})
    private String innerExecuteStandard;

    @ApiModelProperty(value = "内包装 定版时间", example = "2021-06-02")
    @ExcelProperty(value = {"内包装", "制作信息", "定版时间2"})
    private String innerConfirmTime;

    @ApiModelProperty(value = "内包装 制作公司", example = "重庆老麻仙")
    @ExcelProperty(value = {"内包装", "制作信息", "制作公司2"})
    private String innerProductionCompany;

    @ApiModelProperty(value = "外箱 长（mm）", example = "503")
    @ExcelProperty(value = {"外箱", "外箱尺寸", "长（mm）"})
    private String length;

    @ApiModelProperty(value = "外箱 宽（mm）", example = "213")
    @ExcelProperty(value = {"外箱", "外箱尺寸", "宽（mm）"})
    private String width;

    @ApiModelProperty(value = "外箱 高（mm）", example = "214")
    @ExcelProperty(value = {"外箱", "外箱尺寸", "高（mm）"})
    private String height;

    @ApiModelProperty(value = "外箱 单位体积(m²)", example = "89077")
    @ExcelProperty(value = {"外箱", "外箱尺寸", "单位体积(m²)"})
    private String perVolume;

    @ApiModelProperty(value = "外箱 内外径尺寸", example = "内径")
    @ExcelProperty(value = {"外箱", "外箱尺寸", "内外径尺寸"})
    private String innerAndOuterDiameter;

    @ApiModelProperty(value = "外箱 装箱规格", example = "1*150罐*60ml")
    @ExcelProperty(value = {"外箱", "规格", "装箱规格"})
    private String boxStandard;

    @ApiModelProperty(value = "外箱 净重(kg)", example = "12kg")
    @ExcelProperty(value = {"外箱", "规格", "净重(kg)"})
    private String boxNetWeight;

    @ApiModelProperty(value = "外箱 毛重(kg)", example = "5.89kg")
    @ExcelProperty(value = {"外箱", "规格", "毛重(kg)"})
    private String grossWeight;

    @ApiModelProperty(value = "外箱 外箱条码", example = "6926718454734")
    @ExcelProperty(value = {"外箱", "编码", "外箱条码"})
    private String boxNumber;

    @ApiModelProperty(value = "外箱 外箱编码", example = "Z1")
    @ExcelProperty(value = {"外箱", "编码", "外箱编码"})
    private String boxId;

    @ApiModelProperty(value = "外箱 印刷工艺", example = "")
    @ExcelProperty(value = {"外箱", "制作信息", "印刷工艺3"})
    private String boxPrintArt;

    @ApiModelProperty(value = "外箱 材质", example = "5层瓦楞纸水印")
    @ExcelProperty(value = {"外箱", "制作信息", "外箱材质3"})
    private String boxMaterial;

    @ApiModelProperty(value = "外箱 定版时间", example = "2021-04-10")
    @ExcelProperty(value = {"外箱", "制作信息", "定版时间3"})
    private String boxConfirmTime;

    @ApiModelProperty(value = "外箱 制作公司", example = "重庆老麻仙")
    @ExcelProperty(value = {"外箱", "制作信息", "制作公司3"})
    private String boxProductionCompany;

    @Override
    public PackMaintain cleanup() {
        super.cleanup();
        this.setUpdateTimeOfProduct(DateUtil.getNowDate());
        return this;
    }

}
